return {
  "xiaoqixian/buffer-explorer.nvim",
  dependencies = {
    "nvim-lua/plenary.nvim",
    "nvim-tree/nvim-web-devicons",
  },
  opts = {
    mode = "menu", -- 关键设置： ui 模式还是 menu 模式？
    ui = {
      config = {
        title = "Buffer Explorer",
        title_pos = "center",
        width = 100,
        height = 50,
        border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
        win_options = {
          cursorline = true,
          number = true,
        },
      },
    },
    menu = {
      config = {
        -- set menu buffer local highlights
        highlights = {
          -- the key is also the name of
          -- the highlighting group.
          ModifiedBuffer = {
            ctermfg = 3,
            bold = true,
          },
        },
      },
    },
  },
  keys = {
    {
      "<leader>be",
      function()
        local be = require("buffer_explorer")
        be:toggle()
      end,
      {
        noremap = true,
        nowait = true,
        desc = "toggle buffer explorer",
        silent = true,
      },
    },
  },
  lazy = false,
  config = function(_, opts)
    local be = require("buffer_explorer")
    local utils = require("buffer_explorer.utils")
    opts.menu.config.menu_keymaps = {
      ["<CR>"] = {
        op = utils.edit_buffer,
        desc = "edit buffer on the cursorline",
      },
      ["q"] = {
        op = function()
          be:close()
        end,
        desc = "close buffer explorer",
      },
      ["<ESC>"] = {
        op = function()
          be:close()
        end,
        desc = "close buffer explorer",
      },
      ["t"] = {
        op = utils.tabnew_buffer,
        desc = "open buffer in a new tab",
      },
      ["d"] = {
        op = utils.delete_buffer,
        desc = "delete a buffer",
      },
      ["D"] = {
        op = utils.force_delete_buffer,
        desc = "force delete a buffer",
      },
      ["e"] = {
        op = utils.toggle_buf_name,
        desc = "toggle buffer name",
      },
      ["i"] = {
        op = utils.sp_buffer,
        desc = "open buffer in a horizontal window",
      },
      ["s"] = {
        op = utils.vs_buffer,
        desc = "open buffer in a vertical window",
      },
    }
    be:setup(opts)
  end,
}
